package cn.j0n4than.accountingtool.service;

import cn.j0n4than.accountingtool.entity.User;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
 * 用户服务接口
 *
 * @author jonathan
 */
public interface UserService {

    /**
     * 更新用户信息
     *
     * @param id   目标用户ID
     * @param user 修改后的User对象
     * @return 影响行数
     */
    Integer update(Integer id, User user);

    /**
     * 获取用户分页列表
     *
     * @param page 当前页
     * @param size 页大小
     * @return Page
     */
    Page<User> getPage(Integer page, Integer size);

    /**
     * 通过ID获取用户
     *
     * @param id 用户ID
     * @return User
     */
    User getUserById(Integer id);

    /**
     * 通过用户名获取用户
     *
     * @param username 用户名
     * @return User
     */
    User getUserByUsername(String username);

    /**
     * 用户登陆功能
     *
     * @param username 用户名
     * @param password 密码
     * @return User
     */
    User login(String username, String password);

    /**
     * 用户注册功能
     *
     * @param username 用户名
     * @param password 密码
     * @param email    电子邮箱
     * @return User
     */
    User reg(String username, String password, String email);
}
